1. Technical Field
This invention relates to computer systems and networks, and more particularly to a method of selectively loading a network operating system to a client from a server on a network such as the internet.
2. Description of the Related Art
A client computer on a network may in some instances be in the form of a minimally-configured platform having only the basic components needed to input and output data by a user. All of the applications software and long-term storage of data is provided by a server somewhere else on the network. This type of client station is sometimes called a network computer, in that it is operable only when connected to the network rather than as a stand-alone unit. The client station often does not have permanent storage media such as a hard disk drive or a CD-ROM drive, but instead merely accesses any needed programs and data from a remote server via the network.
In addition to relying on the server and the network for applications programs and for long-term data storage, the client station may also rely on the network link for its operating system. JavaOS(trademark) is an example of such an arrangement. JavaOS is an operating system maintained at a server on a network for downloading by a client each time the client comes online at bootup. The client station contains in its hardware a minimumally-sufficient ROM-based code to attach to the network at power-on and begin to retrieve information from the server; this client immediately starts installing its operating system into local memory upon boot-up as the code is received from the server. Then, after the operating system software is installed, the applications programs needed are retrieved from the server and installed in system memory.
The client station using a JavaOS server-provided operating system or the like has ROM-based code to start loading its operating system from the server, such as by TFTP, at start-up. The JavaOS operating system is a large image, and loading all of the image at one time causes excessive network traffic that may result in boot time delays. The JavaOS as supplied by Sun in the form of one of the releases of JDK or Java Development Kit also contains a large number of classes that are rarely used. The reason these classes are rarely used may be because they provide support for devices or applications that do not exist on the client""s platform. Or, they may not be used because they are not part of the general working set (e.g., they are exception or debug classes). In any event loading all of the classes which are not used or rarely used occupies RAM memory in a client system not having a local hard disk and thus not capable of swapping.
In addition, loading all of the classes of JavaOS at boot-up of a client uses network bandwidth. In a network environment where 100 clients are coming on-line at about 8 AM on a workday, and each has to load say ten or twenty Megabytes of JavaOS, there will be network delays, and each machine will appear slow to the user in coming online.
It is therefore one object of the present invention to provide an improved method of operating a client in a computer network system in a more efficient manner, whereby parts of an operating system are not installed until necessary.
It is another object of the present invention to provide an improved and more efficient method of loading an operating system at a client in a computer network.
It is yet another object of the present invention to provide an improved way of providing an operating system in separately loadable packages which may be loaded by a client as needed.
The above as well as additional objects, features, and advantages of the present invention will become apparent in the following detailed written description.
According to one embodiment of the invention, a client station on a computer network uses an operating system such as JavaOS which is permanently stored at the server rather than on storage media at the client location. The JavaOS is loaded and installed at the client upon bootup of the client. Once the basic system is booted using local firmware, and the base file systems on the network are enabled, an application can begin running, and when it needs to use a particular class file a request will be made through the file system and will be routed over to a generic file system driver, on the client, which will then determine, using a set of configured information, where this class exists; it will utilize the particular file systems available on that booted client, whether it be NFS, or TFTP, to determine where the server is and how to retrieve that particular class file. It will go ahead and force that operation to occur and the class file will be retrieved and cached locally on the client to be used by the application. In order to avoid loading all of the parts of the JavaOS from the server to the client memory, groups of classes are broken out of the monolithic image of JavaOS, and packaged on the server. JDDM-provided packages allow an URL prefix to be provided as part of a package""s configuration information. When a class method/data is requested by the loader via the filesystem, if it is not already present, the URL prefix is used to lazily retrieve and cache that file in memory. This allows classes and data files to be delivered as needed, and significantly reduces the amount of data to be retrieved by TFTP by the client at boot time.